{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "# 分词工具测试\n",
    "- 直接切分\n",
    "- jieba\n",
    "- hanLP\n",
    "- subword-nmt\n",
    "\n",
    "## 实验数据\n",
    "- cmn.txt\n",
    "\n",
    "## 读取数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "总数据：\n",
      " ['Hi.\\t嗨。\\n', 'Hi.\\t你好。\\n', 'Run.\\t你用跑的。\\n', 'Wait!\\t等等！\\n', 'Hello!\\t你好。\\n', 'I try.\\t让我来。\\n', 'I won!\\t我赢了。\\n', 'Oh no!\\t不会吧。\\n', 'Cheers!\\t乾杯!\\n', 'He ran.\\t他跑了。\\n', 'Hop in.\\t跳进来。\\n', 'I lost.\\t我迷失了。\\n', 'I quit.\\t我退出。\\n', \"I'm OK.\\t我沒事。\\n\", 'Listen.\\t听着。\\n', 'No way!\\t不可能！\\n', 'No way!\\t没门！\\n', 'Really?\\t你确定？\\n', 'Try it.\\t试试吧。\\n', 'We try.\\t我们来试试。\\n', 'Why me?\\t为什么是我？\\n', 'Ask Tom.\\t去问汤姆。\\n', 'Be calm.\\t冷静点。\\n', 'Be fair.\\t公平点。\\n', 'Be kind.\\t友善点。\\n', 'Be nice.\\t和气点。\\n', 'Call me.\\t联系我。\\n', 'Call us.\\t联系我们。\\n', 'Come in.\\t进来。\\n', 'Get Tom.\\t找到汤姆。\\n', 'Get out!\\t滾出去！\\n', 'Go away!\\t走開！\\n', 'Go away!\\t滾！\\n', 'Go away.\\t走開！\\n', 'Goodbye!\\t再见！\\n', 'Goodbye!\\t告辞！\\n', 'Hang on!\\t等一下！\\n', 'He came.\\t他来了。\\n', 'He runs.\\t他跑。\\n', 'Help me.\\t帮我一下。\\n', 'Hold on.\\t坚持。\\n', 'Hug Tom.\\t抱抱汤姆！\\n', 'I agree.\\t我同意。\\n', \"I'm ill.\\t我生病了。\\n\", \"I'm old.\\t我老了。\\n\", \"It's OK.\\t没关系。\\n\", \"It's me.\\t是我。\\n\", 'Join us.\\t来加入我们吧。\\n', 'Keep it.\\t留着吧。\\n', 'Kiss me.\\t吻我。\\n', 'Perfect!\\t完美！\\n', 'See you.\\t再见！\\n', 'Shut up!\\t閉嘴！\\n', 'Skip it.\\t不管它。\\n', 'Take it.\\t拿走吧。\\n', 'Wake up!\\t醒醒！\\n', 'Wash up.\\t去清洗一下。\\n', 'We know.\\t我们知道。\\n', 'Welcome.\\t欢迎。\\n', 'Who won?\\t谁赢了？\\n', 'Why not?\\t为什么不？\\n', 'You run.\\t你跑。\\n', 'Back off.\\t往后退点。\\n', 'Be still.\\t静静的，别动。\\n', 'Cuff him.\\t把他铐上。\\n', 'Drive on.\\t往前开。\\n', 'Get away!\\t走開！\\n', 'Get away!\\t滾！\\n', 'Get down!\\t趴下！\\n', 'Get lost!\\t滾！\\n', 'Get real.\\t醒醒吧。\\n', 'Grab Tom.\\t抓住汤姆。\\n', 'Grab him.\\t抓住他。\\n', 'Have fun.\\t玩得開心。\\n', 'He tries.\\t他来试试。\\n', 'Humor me.\\t你就随了我的意吧。\\n', 'Hurry up.\\t趕快!\\n', 'Hurry up.\\t快点！\\n', 'I forgot.\\t我忘了。\\n', 'I resign.\\t我放弃。\\n', \"I'll pay.\\t我來付錢。\\n\", \"I'm busy.\\t我很忙。\\n\", \"I'm cold.\\t我冷。\\n\", \"I'm fine.\\t我很好。\\n\", \"I'm full.\\t我吃飽了。\\n\", \"I'm sick.\\t我生病了。\\n\", \"I'm sick.\\t我病了。\\n\", 'Leave me.\\t让我一个人呆会儿。\\n', \"Let's go!\\t走吧。\\n\", \"Let's go!\\t我們開始吧！\\n\", \"Let's go!\\t我們走吧!\\n\", 'Look out!\\t当心！\\n', 'She runs.\\t她跑。\\n', 'Stand up.\\t起立。\\n', 'They won.\\t他们赢了。\\n', 'Tom died.\\t汤姆去世了。\\n', 'Tom quit.\\t汤姆不干了。\\n', 'Tom swam.\\t汤姆游泳了。\\n', 'Trust me.\\t相信我。\\n', 'Try hard.\\t努力。\\n']\n"
     ]
    }
   ],
   "source": [
    "with open('cmn.txt', 'r', encoding='utf-8') as f:\n",
    "    data = f.readlines()\n",
    "\n",
    "data = data[:100]\n",
    "print('总数据：\\n', data)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## 1. 直接切分"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "scrolled": true,
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "英文数据：\n",
      " ['Hi.', 'Hi.', 'Run.', 'Wait!', 'Hello!', 'I try.', 'I won!', 'Oh no!', 'Cheers!', 'He ran.', 'Hop in.', 'I lost.', 'I quit.', \"I'm OK.\", 'Listen.', 'No way!', 'No way!', 'Really?', 'Try it.', 'We try.', 'Why me?', 'Ask Tom.', 'Be calm.', 'Be fair.', 'Be kind.', 'Be nice.', 'Call me.', 'Call us.', 'Come in.', 'Get Tom.', 'Get out!', 'Go away!', 'Go away!', 'Go away.', 'Goodbye!', 'Goodbye!', 'Hang on!', 'He came.', 'He runs.', 'Help me.', 'Hold on.', 'Hug Tom.', 'I agree.', \"I'm ill.\", \"I'm old.\", \"It's OK.\", \"It's me.\", 'Join us.', 'Keep it.', 'Kiss me.', 'Perfect!', 'See you.', 'Shut up!', 'Skip it.', 'Take it.', 'Wake up!', 'Wash up.', 'We know.', 'Welcome.', 'Who won?', 'Why not?', 'You run.', 'Back off.', 'Be still.', 'Cuff him.', 'Drive on.', 'Get away!', 'Get away!', 'Get down!', 'Get lost!', 'Get real.', 'Grab Tom.', 'Grab him.', 'Have fun.', 'He tries.', 'Humor me.', 'Hurry up.', 'Hurry up.', 'I forgot.', 'I resign.', \"I'll pay.\", \"I'm busy.\", \"I'm cold.\", \"I'm fine.\", \"I'm full.\", \"I'm sick.\", \"I'm sick.\", 'Leave me.', \"Let's go!\", \"Let's go!\", \"Let's go!\", 'Look out!', 'She runs.', 'Stand up.', 'They won.', 'Tom died.', 'Tom quit.', 'Tom swam.', 'Trust me.', 'Try hard.']\n",
      "\n",
      "中文数据：\n",
      " ['嗨。', '你好。', '你用跑的。', '等等！', '你好。', '让我来。', '我赢了。', '不会吧。', '乾杯!', '他跑了。', '跳进来。', '我迷失了。', '我退出。', '我沒事。', '听着。', '不可能！', '没门！', '你确定？', '试试吧。', '我们来试试。', '为什么是我？', '去问汤姆。', '冷静点。', '公平点。', '友善点。', '和气点。', '联系我。', '联系我们。', '进来。', '找到汤姆。', '滾出去！', '走開！', '滾！', '走開！', '再见！', '告辞！', '等一下！', '他来了。', '他跑。', '帮我一下。', '坚持。', '抱抱汤姆！', '我同意。', '我生病了。', '我老了。', '没关系。', '是我。', '来加入我们吧。', '留着吧。', '吻我。', '完美！', '再见！', '閉嘴！', '不管它。', '拿走吧。', '醒醒！', '去清洗一下。', '我们知道。', '欢迎。', '谁赢了？', '为什么不？', '你跑。', '往后退点。', '静静的，别动。', '把他铐上。', '往前开。', '走開！', '滾！', '趴下！', '滾！', '醒醒吧。', '抓住汤姆。', '抓住他。', '玩得開心。', '他来试试。', '你就随了我的意吧。', '趕快!', '快点！', '我忘了。', '我放弃。', '我來付錢。', '我很忙。', '我冷。', '我很好。', '我吃飽了。', '我生病了。', '我病了。', '让我一个人呆会儿。', '走吧。', '我們開始吧！', '我們走吧!', '当心！', '她跑。', '起立。', '他们赢了。', '汤姆去世了。', '汤姆不干了。', '汤姆游泳了。', '相信我。', '努力。']\n",
      "直接分词英文字典：\n",
      " [' ', '!', \"'\", '.', '?', 'A', 'B', 'C', 'D', 'G', 'H', 'I', 'J', 'K', 'L', 'N', 'O', 'P', 'R', 'S', 'T', 'W', 'Y', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'y']\n",
      "\n",
      "直接分词中文字典：\n",
      " ['!', '。', '一', '上', '下', '不', '世', '个', '为', '么', '乾', '了', '事', '人', '什', '他', '付', '们', '会', '住', '你', '來', '信', '們', '儿', '入', '公', '关', '再', '冷', '出', '别', '到', '前', '力', '加', '动', '努', '去', '友', '可', '吃', '同', '后', '吧', '听', '吻', '呆', '告', '和', '善', '嗨', '嘴', '坚', '失', '她', '好', '姆', '始', '它', '完', '定', '就', '帮', '干', '平', '开', '弃', '当', '往', '很', '得', '心', '忘', '忙', '快', '意', '我', '找', '把', '抓', '抱', '拿', '持', '放', '是', '来', '杯', '欢', '气', '汤', '沒', '没', '泳', '洗', '清', '游', '滾', '点', '玩', '生', '用', '留', '病', '的', '相', '着', '知', '确', '立', '等', '管', '系', '美', '老', '联', '能', '见', '让', '试', '谁', '赢', '走', '起', '趕', '趴', '跑', '跳', '辞', '迎', '进', '迷', '退', '道', '醒', '錢', '铐', '閉', '開', '门', '问', '随', '静', '飽', '！', '，', '？']\n"
     ]
    }
   ],
   "source": [
    "en_list = [line.split('\\t')[0] for line in data]\n",
    "print('\\n英文数据：\\n', en_list)\n",
    "\n",
    "ch_list = [line.split('\\t')[1].strip('\\n') for line in data]\n",
    "print('\\n中文数据：\\n', ch_list)\n",
    "\n",
    "en_vocab = sorted(set(''.join(en_list)))\n",
    "print('直接分词英文字典：\\n', en_vocab)\n",
    "\n",
    "ch_vocab = sorted(set(''.join(ch_list)))\n",
    "print('\\n直接分词中文字典：\\n', ch_vocab)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## 2. 结巴分词工具\n",
    "\n",
    "详细功能查阅：[jieba github](https://github.com/fxsjy/jieba)\n",
    "\n",
    "结巴能够添加自己词库的功能\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Building prefix dict from the default dictionary ...\n",
      "Loading model from cache C:\\Users\\Hongwen\\AppData\\Local\\Temp\\jieba.cache\n",
      "Loading model cost 0.847 seconds.\n",
      "Prefix dict has been built succesfully.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "英文数据——结巴分词：\n",
      " [['Hi', '.'], ['Hi', '.'], ['Run', '.'], ['Wait', '!'], ['Hello', '!'], ['I', ' ', 'try', '.'], ['I', ' ', 'won', '!'], ['Oh', ' ', 'no', '!'], ['Cheers', '!'], ['He', ' ', 'ran', '.'], ['Hop', ' ', 'in', '.'], ['I', ' ', 'lost', '.'], ['I', ' ', 'quit', '.'], ['I', \"'\", 'm', ' ', 'OK', '.'], ['Listen', '.'], ['No', ' ', 'way', '!'], ['No', ' ', 'way', '!'], ['Really', '?'], ['Try', ' ', 'it', '.'], ['We', ' ', 'try', '.'], ['Why', ' ', 'me', '?'], ['Ask', ' ', 'Tom', '.'], ['Be', ' ', 'calm', '.'], ['Be', ' ', 'fair', '.'], ['Be', ' ', 'kind', '.'], ['Be', ' ', 'nice', '.'], ['Call', ' ', 'me', '.'], ['Call', ' ', 'us', '.'], ['Come', ' ', 'in', '.'], ['Get', ' ', 'Tom', '.'], ['Get', ' ', 'out', '!'], ['Go', ' ', 'away', '!'], ['Go', ' ', 'away', '!'], ['Go', ' ', 'away', '.'], ['Goodbye', '!'], ['Goodbye', '!'], ['Hang', ' ', 'on', '!'], ['He', ' ', 'came', '.'], ['He', ' ', 'runs', '.'], ['Help', ' ', 'me', '.'], ['Hold', ' ', 'on', '.'], ['Hug', ' ', 'Tom', '.'], ['I', ' ', 'agree', '.'], ['I', \"'\", 'm', ' ', 'ill', '.'], ['I', \"'\", 'm', ' ', 'old', '.'], ['It', \"'\", 's', ' ', 'OK', '.'], ['It', \"'\", 's', ' ', 'me', '.'], ['Join', ' ', 'us', '.'], ['Keep', ' ', 'it', '.'], ['Kiss', ' ', 'me', '.'], ['Perfect', '!'], ['See', ' ', 'you', '.'], ['Shut', ' ', 'up', '!'], ['Skip', ' ', 'it', '.'], ['Take', ' ', 'it', '.'], ['Wake', ' ', 'up', '!'], ['Wash', ' ', 'up', '.'], ['We', ' ', 'know', '.'], ['Welcome', '.'], ['Who', ' ', 'won', '?'], ['Why', ' ', 'not', '?'], ['You', ' ', 'run', '.'], ['Back', ' ', 'off', '.'], ['Be', ' ', 'still', '.'], ['Cuff', ' ', 'him', '.'], ['Drive', ' ', 'on', '.'], ['Get', ' ', 'away', '!'], ['Get', ' ', 'away', '!'], ['Get', ' ', 'down', '!'], ['Get', ' ', 'lost', '!'], ['Get', ' ', 'real', '.'], ['Grab', ' ', 'Tom', '.'], ['Grab', ' ', 'him', '.'], ['Have', ' ', 'fun', '.'], ['He', ' ', 'tries', '.'], ['Humor', ' ', 'me', '.'], ['Hurry', ' ', 'up', '.'], ['Hurry', ' ', 'up', '.'], ['I', ' ', 'forgot', '.'], ['I', ' ', 'resign', '.'], ['I', \"'\", 'll', ' ', 'pay', '.'], ['I', \"'\", 'm', ' ', 'busy', '.'], ['I', \"'\", 'm', ' ', 'cold', '.'], ['I', \"'\", 'm', ' ', 'fine', '.'], ['I', \"'\", 'm', ' ', 'full', '.'], ['I', \"'\", 'm', ' ', 'sick', '.'], ['I', \"'\", 'm', ' ', 'sick', '.'], ['Leave', ' ', 'me', '.'], ['Let', \"'\", 's', ' ', 'go', '!'], ['Let', \"'\", 's', ' ', 'go', '!'], ['Let', \"'\", 's', ' ', 'go', '!'], ['Look', ' ', 'out', '!'], ['She', ' ', 'runs', '.'], ['Stand', ' ', 'up', '.'], ['They', ' ', 'won', '.'], ['Tom', ' ', 'died', '.'], ['Tom', ' ', 'quit', '.'], ['Tom', ' ', 'swam', '.'], ['Trust', ' ', 'me', '.'], ['Try', ' ', 'hard', '.']]\n",
      "\n",
      "中文数据——结巴分词：\n",
      " [['嗨', '。'], ['你好', '。'], ['你', '用', '跑', '的', '。'], ['等等', '！'], ['你好', '。'], ['让', '我', '来', '。'], ['我', '赢', '了', '。'], ['不会', '吧', '。'], ['乾杯', '!'], ['他', '跑', '了', '。'], ['跳进来', '。'], ['我', '迷失', '了', '。'], ['我', '退出', '。'], ['我', '沒事', '。'], ['听', '着', '。'], ['不', '可能', '！'], ['没门', '！'], ['你', '确定', '？'], ['试试', '吧', '。'], ['我们', '来', '试试', '。'], ['为什么', '是', '我', '？'], ['去', '问', '汤姆', '。'], ['冷静', '点', '。'], ['公平', '点', '。'], ['友善', '点', '。'], ['和', '气点', '。'], ['联系', '我', '。'], ['联系', '我们', '。'], ['进来', '。'], ['找到', '汤姆', '。'], ['滾', '出去', '！'], ['走開', '！'], ['滾', '！'], ['走開', '！'], ['再见', '！'], ['告辞', '！'], ['等', '一下', '！'], ['他来', '了', '。'], ['他', '跑', '。'], ['帮', '我', '一下', '。'], ['坚持', '。'], ['抱抱', '汤姆', '！'], ['我', '同意', '。'], ['我', '生病', '了', '。'], ['我', '老', '了', '。'], ['没关系', '。'], ['是', '我', '。'], ['来', '加入', '我们', '吧', '。'], ['留着', '吧', '。'], ['吻', '我', '。'], ['完美', '！'], ['再见', '！'], ['閉嘴', '！'], ['不管', '它', '。'], ['拿走', '吧', '。'], ['醒醒', '！'], ['去', '清洗', '一下', '。'], ['我们', '知道', '。'], ['欢迎', '。'], ['谁', '赢', '了', '？'], ['为什么', '不', '？'], ['你', '跑', '。'], ['往', '后退', '点', '。'], ['静静的', '，', '别动', '。'], ['把', '他', '铐', '上', '。'], ['往前', '开', '。'], ['走開', '！'], ['滾', '！'], ['趴下', '！'], ['滾', '！'], ['醒醒', '吧', '。'], ['抓住', '汤姆', '。'], ['抓住', '他', '。'], ['玩得', '開心', '。'], ['他来', '试试', '。'], ['你', '就', '随', '了', '我', '的', '意', '吧', '。'], ['趕快', '!'], ['快点', '！'], ['我', '忘', '了', '。'], ['我', '放弃', '。'], ['我來', '付錢', '。'], ['我', '很', '忙', '。'], ['我', '冷', '。'], ['我', '很', '好', '。'], ['我', '吃', '飽', '了', '。'], ['我', '生病', '了', '。'], ['我病', '了', '。'], ['让', '我', '一个', '人', '呆', '会儿', '。'], ['走', '吧', '。'], ['我們', '開始', '吧', '！'], ['我們', '走', '吧', '!'], ['当心', '！'], ['她', '跑', '。'], ['起立', '。'], ['他们', '赢', '了', '。'], ['汤姆', '去世', '了', '。'], ['汤姆', '不干', '了', '。'], ['汤姆', '游泳', '了', '。'], ['相信', '我', '。'], ['努力', '。']]\n",
      "\n",
      "jieba分词英文字典：\n",
      " [' ', '!', \"'\", '.', '?', 'Ask', 'Back', 'Be', 'Call', 'Cheers', 'Come', 'Cuff', 'Drive', 'Get', 'Go', 'Goodbye', 'Grab', 'Hang', 'Have', 'He', 'Hello', 'Help', 'Hi', 'Hold', 'Hop', 'Hug', 'Humor', 'Hurry', 'I', 'It', 'Join', 'Keep', 'Kiss', 'Leave', 'Let', 'Listen', 'Look', 'No', 'OK', 'Oh', 'Perfect', 'Really', 'Run', 'See', 'She', 'Shut', 'Skip', 'Stand', 'Take', 'They', 'Tom', 'Trust', 'Try', 'Wait', 'Wake', 'Wash', 'We', 'Welcome', 'Who', 'Why', 'You', 'agree', 'away', 'busy', 'calm', 'came', 'cold', 'died', 'down', 'fair', 'fine', 'forgot', 'full', 'fun', 'go', 'hard', 'him', 'ill', 'in', 'it', 'kind', 'know', 'll', 'lost', 'm', 'me', 'nice', 'no', 'not', 'off', 'old', 'on', 'out', 'pay', 'quit', 'ran', 'real', 'resign', 'run', 'runs', 's', 'sick', 'still', 'swam', 'tries', 'try', 'up', 'us', 'way', 'won', 'you']\n",
      "\n",
      "jieba分词中文字典：\n",
      " ['!', '。', '一下', '一个', '上', '不', '不会', '不干', '不管', '为什么', '乾杯', '了', '人', '他', '他们', '他来', '付錢', '会儿', '你', '你好', '公平', '再见', '冷', '冷静', '出去', '别动', '加入', '努力', '去', '去世', '友善', '可能', '吃', '同意', '后退', '吧', '听', '吻', '呆', '告辞', '和', '嗨', '坚持', '她', '好', '它', '完美', '就', '帮', '开', '当心', '往', '往前', '很', '忘', '忙', '快点', '意', '我', '我们', '我來', '我們', '我病', '找到', '把', '抓住', '抱抱', '拿走', '放弃', '是', '来', '欢迎', '气点', '汤姆', '沒事', '没关系', '没门', '清洗', '游泳', '滾', '点', '玩得', '生病', '用', '留着', '的', '相信', '着', '知道', '确定', '等', '等等', '老', '联系', '让', '试试', '谁', '赢', '走', '走開', '起立', '趕快', '趴下', '跑', '跳进来', '进来', '迷失', '退出', '醒醒', '铐', '閉嘴', '開始', '開心', '问', '随', '静静的', '飽', '！', '，', '？']\n"
     ]
    }
   ],
   "source": [
    "import jieba\n",
    "\n",
    "jieba_en_list = [jieba.lcut(line) for line in en_list]\n",
    "print('英文数据——结巴分词：\\n', jieba_en_list)\n",
    "\n",
    "jieba_ch_list = [jieba.lcut(line) for line in ch_list]\n",
    "print('\\n中文数据——结巴分词：\\n', jieba_ch_list)\n",
    "\n",
    "jieba_en_vocab =[char for line in jieba_en_list for char in line]\n",
    "jieba_en_vocab = sorted(set(jieba_en_vocab))\n",
    "print('\\njieba分词英文字典：\\n', jieba_en_vocab)\n",
    "\n",
    "jieba_ch_vocab =[char for line in jieba_ch_list for char in line]\n",
    "jieba_ch_vocab = sorted(set(jieba_ch_vocab))\n",
    "print('\\njieba分词中文字典：\\n', jieba_ch_vocab)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## 3. HanLP分词工具\n",
    "\n",
    "python调用：[pyhanlp](https://github.com/hankcs/pyhanlp)\n",
    "\n",
    "主项目文档：[详细文档](https://github.com/hankcs/HanLP)\n",
    "- 执行：\n",
    "`pip install hanlp`\n",
    "\n",
    "- 报错先执行：\n",
    "`conda install -c conda-forge jpype1`_(使用anaconda）_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "scrolled": true,
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "英文数据——hanlp分词：\n",
      " [['Hi', '.'], ['Hi', '.'], ['Run', '.'], ['Wait', '!'], ['Hello', '!'], ['I', ' ', 'try', '.'], ['I', ' ', 'won', '!'], ['Oh', ' ', 'no', '!'], ['Cheers', '!'], ['He', ' ', 'ran', '.'], ['Hop', ' ', 'in', '.'], ['I', ' ', 'lost', '.'], ['I', ' ', 'quit', '.'], [\"I'm\", ' ', 'OK', '.'], ['Listen', '.'], ['No', ' ', 'way', '!'], ['No', ' ', 'way', '!'], ['Really', '?'], ['Try', ' ', 'it', '.'], ['We', ' ', 'try', '.'], ['Why', ' ', 'me', '?'], ['Ask', ' ', 'Tom', '.'], ['Be', ' ', 'calm', '.'], ['Be', ' ', 'fair', '.'], ['Be', ' ', 'kind', '.'], ['Be', ' ', 'nice', '.'], ['Call', ' ', 'me', '.'], ['Call', ' ', 'us', '.'], ['Come', ' ', 'in', '.'], ['Get', ' ', 'Tom', '.'], ['Get', ' ', 'out', '!'], ['Go', ' ', 'away', '!'], ['Go', ' ', 'away', '!'], ['Go', ' ', 'away', '.'], ['Goodbye', '!'], ['Goodbye', '!'], ['Hang', ' ', 'on', '!'], ['He', ' ', 'came', '.'], ['He', ' ', 'runs', '.'], ['Help', ' ', 'me', '.'], ['Hold', ' ', 'on', '.'], ['Hug', ' ', 'Tom', '.'], ['I', ' ', 'agree', '.'], [\"I'm\", ' ', 'ill', '.'], [\"I'm\", ' ', 'old', '.'], [\"It's\", ' ', 'OK', '.'], [\"It's\", ' ', 'me', '.'], ['Join', ' ', 'us', '.'], ['Keep', ' ', 'it', '.'], ['Kiss', ' ', 'me', '.'], ['Perfect', '!'], ['See', ' ', 'you', '.'], ['Shut', ' ', 'up', '!'], ['Skip', ' ', 'it', '.'], ['Take', ' ', 'it', '.'], ['Wake', ' ', 'up', '!'], ['Wash', ' ', 'up', '.'], ['We', ' ', 'know', '.'], ['Welcome', '.'], ['Who', ' ', 'won', '?'], ['Why', ' ', 'not', '?'], ['You', ' ', 'run', '.'], ['Back', ' ', 'off', '.'], ['Be', ' ', 'still', '.'], ['Cuff', ' ', 'him', '.'], ['Drive', ' ', 'on', '.'], ['Get', ' ', 'away', '!'], ['Get', ' ', 'away', '!'], ['Get', ' ', 'down', '!'], ['Get', ' ', 'lost', '!'], ['Get', ' ', 'real', '.'], ['Grab', ' ', 'Tom', '.'], ['Grab', ' ', 'him', '.'], ['Have', ' ', 'fun', '.'], ['He', ' ', 'tries', '.'], ['Humor', ' ', 'me', '.'], ['Hurry', ' ', 'up', '.'], ['Hurry', ' ', 'up', '.'], ['I', ' ', 'forgot', '.'], ['I', ' ', 'resign', '.'], [\"I'll\", ' ', 'pay', '.'], [\"I'm\", ' ', 'busy', '.'], [\"I'm\", ' ', 'cold', '.'], [\"I'm\", ' ', 'fine', '.'], [\"I'm\", ' ', 'full', '.'], [\"I'm\", ' ', 'sick', '.'], [\"I'm\", ' ', 'sick', '.'], ['Leave', ' ', 'me', '.'], [\"Let's\", ' ', 'go', '!'], [\"Let's\", ' ', 'go', '!'], [\"Let's\", ' ', 'go', '!'], ['Look', ' ', 'out', '!'], ['She', ' ', 'runs', '.'], ['Stand', ' ', 'up', '.'], ['They', ' ', 'won', '.'], ['Tom', ' ', 'died', '.'], ['Tom', ' ', 'quit', '.'], ['Tom', ' ', 'swam', '.'], ['Trust', ' ', 'me', '.'], ['Try', ' ', 'hard', '.']]\n",
      "\n",
      "中文数据——hanlp分词：\n",
      " [['嗨', '。'], ['你好', '。'], ['你', '用', '跑', '的', '。'], ['等等', '！'], ['你好', '。'], ['让', '我', '来', '。'], ['我', '赢', '了', '。'], ['不会', '吧', '。'], ['乾', '杯', '!'], ['他', '跑', '了', '。'], ['跳', '进来', '。'], ['我', '迷失', '了', '。'], ['我', '退出', '。'], ['我', '沒', '事', '。'], ['听', '着', '。'], ['不', '可能', '！'], ['没门', '！'], ['你', '确定', '？'], ['试试', '吧', '。'], ['我们', '来', '试试', '。'], ['为什么', '是', '我', '？'], ['去', '问', '汤姆', '。'], ['冷静', '点', '。'], ['公平', '点', '。'], ['友善', '点', '。'], ['和气点', '。'], ['联系', '我', '。'], ['联系', '我们', '。'], ['进来', '。'], ['找到', '汤姆', '。'], ['滾', '出去', '！'], ['走', '開', '！'], ['滾', '！'], ['走', '開', '！'], ['再见', '！'], ['告辞', '！'], ['等', '一下', '！'], ['他', '来', '了', '。'], ['他', '跑', '。'], ['帮', '我', '一下', '。'], ['坚持', '。'], ['抱抱', '汤姆', '！'], ['我', '同意', '。'], ['我', '生病', '了', '。'], ['我', '老', '了', '。'], ['没关系', '。'], ['是', '我', '。'], ['来', '加入', '我们', '吧', '。'], ['留', '着', '吧', '。'], ['吻', '我', '。'], ['完美', '！'], ['再见', '！'], ['閉', '嘴', '！'], ['不管', '它', '。'], ['拿走', '吧', '。'], ['醒醒', '！'], ['去', '清洗', '一下', '。'], ['我们', '知道', '。'], ['欢迎', '。'], ['谁', '赢', '了', '？'], ['为什么', '不', '？'], ['你', '跑', '。'], ['往后', '退', '点', '。'], ['静静的', '，', '别动', '。'], ['把', '他', '铐', '上', '。'], ['往', '前', '开', '。'], ['走', '開', '！'], ['滾', '！'], ['趴下', '！'], ['滾', '！'], ['醒醒', '吧', '。'], ['抓住', '汤姆', '。'], ['抓住', '他', '。'], ['玩', '得', '開心', '。'], ['他', '来', '试试', '。'], ['你', '就', '随', '了', '我', '的', '意', '吧', '。'], ['趕', '快', '!'], ['快', '点', '！'], ['我', '忘了', '。'], ['我', '放弃', '。'], ['我', '來', '付', '錢', '。'], ['我', '很忙', '。'], ['我', '冷', '。'], ['我', '很好', '。'], ['我', '吃', '飽', '了', '。'], ['我', '生病', '了', '。'], ['我', '病', '了', '。'], ['让', '我', '一个', '人', '呆', '会儿', '。'], ['走', '吧', '。'], ['我們', '開始', '吧', '！'], ['我們', '走', '吧', '!'], ['当心', '！'], ['她', '跑', '。'], ['起立', '。'], ['他们', '赢', '了', '。'], ['汤姆', '去世', '了', '。'], ['汤姆', '不', '干', '了', '。'], ['汤姆', '游泳', '了', '。'], ['相信', '我', '。'], ['努力', '。']]\n",
      "\n",
      "分词英文字典——hanlp：\n",
      " [' ', '!', '.', '?', 'Ask', 'Back', 'Be', 'Call', 'Cheers', 'Come', 'Cuff', 'Drive', 'Get', 'Go', 'Goodbye', 'Grab', 'Hang', 'Have', 'He', 'Hello', 'Help', 'Hi', 'Hold', 'Hop', 'Hug', 'Humor', 'Hurry', 'I', \"I'll\", \"I'm\", \"It's\", 'Join', 'Keep', 'Kiss', 'Leave', \"Let's\", 'Listen', 'Look', 'No', 'OK', 'Oh', 'Perfect', 'Really', 'Run', 'See', 'She', 'Shut', 'Skip', 'Stand', 'Take', 'They', 'Tom', 'Trust', 'Try', 'Wait', 'Wake', 'Wash', 'We', 'Welcome', 'Who', 'Why', 'You', 'agree', 'away', 'busy', 'calm', 'came', 'cold', 'died', 'down', 'fair', 'fine', 'forgot', 'full', 'fun', 'go', 'hard', 'him', 'ill', 'in', 'it', 'kind', 'know', 'lost', 'me', 'nice', 'no', 'not', 'off', 'old', 'on', 'out', 'pay', 'quit', 'ran', 'real', 'resign', 'run', 'runs', 'sick', 'still', 'swam', 'tries', 'try', 'up', 'us', 'way', 'won', 'you']\n",
      "\n",
      "分词中文字典——hanlp：\n",
      " ['!', '。', '一下', '一个', '上', '不', '不会', '不管', '为什么', '乾', '了', '事', '人', '他', '他们', '付', '会儿', '你', '你好', '來', '公平', '再见', '冷', '冷静', '出去', '别动', '前', '加入', '努力', '去', '去世', '友善', '可能', '吃', '同意', '吧', '听', '吻', '呆', '告辞', '和气点', '嗨', '嘴', '坚持', '她', '它', '完美', '就', '帮', '干', '开', '当心', '往', '往后', '很好', '很忙', '得', '忘了', '快', '意', '我', '我们', '我們', '找到', '把', '抓住', '抱抱', '拿走', '放弃', '是', '来', '杯', '欢迎', '汤姆', '沒', '没关系', '没门', '清洗', '游泳', '滾', '点', '玩', '生病', '用', '留', '病', '的', '相信', '着', '知道', '确定', '等', '等等', '老', '联系', '让', '试试', '谁', '赢', '走', '起立', '趕', '趴下', '跑', '跳', '进来', '迷失', '退', '退出', '醒醒', '錢', '铐', '閉', '開', '開始', '開心', '问', '随', '静静的', '飽', '！', '，', '？']\n"
     ]
    }
   ],
   "source": [
    "from pyhanlp import *\n",
    "\n",
    "hanlp_en_list = [[term.word for term in HanLP.segment(line)] for line in en_list]\n",
    "print('英文数据——hanlp分词：\\n', hanlp_en_list)\n",
    "\n",
    "hanlp_ch_list = [[term.word for term in HanLP.segment(line)] for line in ch_list]\n",
    "print('\\n中文数据——hanlp分词：\\n', hanlp_ch_list)\n",
    "\n",
    "hanlp_en_vocab =[word for line in hanlp_en_list for word in line]\n",
    "hanlp_en_vocab = sorted(set(hanlp_en_vocab))\n",
    "print('\\n分词英文字典——hanlp：\\n', hanlp_en_vocab)\n",
    "\n",
    "hanlp_ch_vocab =[word for line in hanlp_ch_list for word in line]\n",
    "hanlp_ch_vocab = sorted(set(hanlp_ch_vocab))\n",
    "print('\\n分词中文字典——hanlp：\\n', hanlp_ch_vocab)\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 4. subword-nmt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['If', 'a', 'person', 'has', 'not', 'had', 'a', 'chance', 'to', 'acquire', 'his', 'target', 'language', 'by', 'the', 'time', \"he's\", 'an', 'adult', ',', \"he's\", 'unlikely', 'to', 'be', 'able', 'to', 'reach', 'native', 'speaker', 'level', 'in', 'that', 'language', '.']\n"
     ]
    }
   ],
   "source": [
    "from pyhanlp import *\n",
    "print([term.word for term in HanLP.segment(\n",
    "        'If a person has not had a chance to acquire his target language by the time he\\'s an adult, he\\'s unlikely to be able to reach native speaker level in that language.') if term.word != ' '])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "celltoolbar": "Slideshow",
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
